#ifndef	EPUCK_DUMMY_HPP__
#define	EPUCK_DUMMY_HPP__

#include "EpuckInterface.hpp"
#include "EpuckImage.hpp"

namespace gui
{
	#include <string>
	using std::string;

	#include <iostream>
	using std::cout;
	using std::endl;

	class EpuckDummy : public EpuckInterface
	{
	public:
		EpuckDummy()
		{ cout << "simulating epuck" << endl; }

		void setBodyLED(LEDState state)
		{ cout << "BodyLED " << state << endl; }
		void setFrontLED(LEDState state)
		{ cout << "FrontLED " << state << endl; }
		void setLED(int number, LEDState state)
		{ cout << "LED " << number << ": " << state; }

		void setMotorSpeed(int left, int right)
		{ cout << "Motor l " << left << ", r " << right << endl; }
		Int2 getMotorSpeed()
		{ cout << "kein Motor da\n"; Int2 r={{0,0}}; return r; }
		void setMotorPosition(int left, int right)
		{
			cout << "Motorposition l " << left << ", r " << right;
			cout << endl;
		}
		Int2 getMotorPosition()
		{ cout << "kein Motor da\n"; Int2 r={{0,0}}; return r; }
		void stopRobot()
		{ cout << "steht\n"; }

		void calibrateProximitySensors()
		{ cout << "Proximity Sensors calibrated\n"; }
		Int8 getProximitySensors()
		{ Int8 r={{0,0,0,0,0,0,0,0}}; return r; }
		Int8 getLightSensors()
		{ Int8 r={{0,0,0,0,0,0,0,0}}; return r; }
		Int3 getAccelerometer()
		{ Int3 r={{0,0,0}}; return r; }
	
		void getCameraImage(EpuckImage& image)
		{ image = cameraShot(); }
		EpuckImage &cameraShot()
		{
			cout << "Bild\n";
			EpuckImage *image = new EpuckImage;
			return *image;
		}
		void playSound(int sampleNo)
		{ cout << "Lärm Nummer " << sampleNo << endl; }
		Int3 getMicrophones()
		{ Int3 r={{0,0,0}}; return r; }

		int getSelectorPosition()
		{ return 0; }

		string getHelpText()
		{ return "Hilfe !!!\n"; }
		string getVersion()
		{ return "version 0\n"; }
	};
}

#endif

